#pragma once
#include "orangepch.h"
#include "Core/Core.h"
#include "Core/Log.h"
namespace Orange {
	class Texture {
		public:
			virtual	uint32_t GetWidth() = 0;
			virtual	uint32_t GetHeight() = 0;
			virtual bool operator==(const Texture& other) const = 0;
			virtual void Bind(uint32_t sort = 0) = 0;
			virtual unsigned int GetRendererId()const = 0;
			
	};

	class Texture2D :public Texture
	{
		public:
			virtual void SetData(void* data, uint32_t size) = 0;
			static Ref<Texture2D> Create(const uint32_t& width , const uint32_t& height);
			static Ref<Texture2D> Create(const std::string& path);

	};

}